
package playing;

import java.io.*;
import java.awt.*;


import objets.*;

/** Classe qui cree un garcon
 * @author Cecile FRANCOU
 * @author Sophia GALLARDO
 * @version 1.1.6 
 * @see Interaction
 */


public class Garcon extends Joueur{

    /** le toolkit pour l'image du garcon */
    Toolkit toolkit_petit_garcon;

    /** l'image du garcon */
    Image image_petit_garcon;

    /** interaction entre les joueurs et le labyrinthe*/
    Interaction interaction;
  
    /** Indiqe si le garcon est a l'envers */
    private boolean a_l_envers;

    /** Genere un garcon avec des touches claviers pour les deplacements et
     * le bisou et avec une position specifique dans le labyrinthe.
     * @param touches_clavier touches clavier du garcon
     * @param positionOrigine position origine du garcon
     * @param interaction interaction entre le joueur et le labyrinthe.
     */
    public Garcon(TouchesClavier touches_clavier,Cell positionOrigine, Interaction interaction){
        super(touches_clavier,positionOrigine,interaction);
        this.interaction = interaction;
        a_l_envers = false; // le garcon n'est pas a l'envers
  }

    /** Dessine le garcon.
     * @param g graphique.
     * @param nom_image nom de l'image du garcon <BR>
     *  si il a recu une gifle, le garcon a la tete en bas et les pieds en haut
     *  si la fille est sortie (elle a donc gagne) il pleure
     *  sinon "il est normal"
     */
    public void dessineToi(Graphics g, String nom_image){
        
        toolkit_petit_garcon = interaction.getToolkit();
        /* si le garcon est a l'envers (il vient de recevoir une gifle)
           on l'affiche a l'envers (l'image ou il est a l'envers)
	   si la fille est sortie, il pleure
        */
        image_petit_garcon = toolkit_petit_garcon.getImage(chemin_images+nom_image);
        
        // on affiche l'image
        g.drawImage(image_petit_garcon,getX()*interaction.getLongueurcase(),getY()*interaction.getHauteurcase(),interaction.getLongueurcase(),interaction.getHauteurcase(),interaction); 
  }


    /** Modifie le boolean "a_l_envers":
     * met a l'envers ou a l'endroit le garcon .
     * @param a_l_envers le garcon est a l'envers.
     */
    public void setA_l_envers(boolean a_l_envers){
        this.a_l_envers = a_l_envers;
    }

    /** Indique si le garcon est a l'envers.
     * @return <code> true </code> le garcon est a l' envers <BR> <code> false </code> le garcon n'est pas l' envers
     */
    public boolean getA_l_envers(){
        return a_l_envers;
  }

 

    /** Le garcon fait le bisou.
     */
    public void fait_le_bisou() {
        // si le bisou est possible
        if (interaction.contact_possible()){
            interaction.setBisou(true); // il fait le bisou au lieu de bisou = true
            
        }
    }

}// fin classe
